#pragma once
// MESSAGE IBEE_RECIEVE_DATA PACKING

#define MAVLINK_MSG_ID_IBEE_RECIEVE_DATA 12917


typedef struct __mavlink_ibee_recieve_data_t {
 float imu_roll; /*<  float*/
 float imu_pitch; /*<  float*/
 float imu_yaw; /*<  float*/
 float imu_accx; /*<  float*/
 float imu_accy; /*<  float*/
 float imu_accz; /*<  float*/
 float imu_magx; /*<  float*/
 float imu_magy; /*<  float*/
 float imu_magz; /*<  float*/
 float imu_rollspeed; /*<  float*/
 float imu_pitchspeed; /*<  float*/
 float imu_yawspeed; /*<  float*/
 float imu_qw; /*<  float*/
 float imu_qx; /*<  float*/
 float imu_qy; /*<  float*/
 float imu_qz; /*<  float*/
 float work_ang; /*<  float*/
 float ultasonic_radar_to_wall; /*<  float*/
 uint8_t deep_learning_use_lr; /*<  */
 uint8_t t265_restart; /*<  uint8_t*/
 uint8_t udisk_eject; /*<  uint8_t*/
 uint8_t switch_cam_index; /*<  uint8_t*/
 uint8_t glb_status; /*<  uint8_t*/
} mavlink_ibee_recieve_data_t;

#define MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN 77
#define MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN 77
#define MAVLINK_MSG_ID_12917_LEN 77
#define MAVLINK_MSG_ID_12917_MIN_LEN 77

#define MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC 6
#define MAVLINK_MSG_ID_12917_CRC 6



#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_IBEE_RECIEVE_DATA { \
    12917, \
    "IBEE_RECIEVE_DATA", \
    23, \
    {  { "imu_roll", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_ibee_recieve_data_t, imu_roll) }, \
         { "imu_pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_ibee_recieve_data_t, imu_pitch) }, \
         { "imu_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ibee_recieve_data_t, imu_yaw) }, \
         { "imu_accx", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ibee_recieve_data_t, imu_accx) }, \
         { "imu_accy", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ibee_recieve_data_t, imu_accy) }, \
         { "imu_accz", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ibee_recieve_data_t, imu_accz) }, \
         { "imu_magx", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ibee_recieve_data_t, imu_magx) }, \
         { "imu_magy", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ibee_recieve_data_t, imu_magy) }, \
         { "imu_magz", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ibee_recieve_data_t, imu_magz) }, \
         { "imu_rollspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ibee_recieve_data_t, imu_rollspeed) }, \
         { "imu_pitchspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ibee_recieve_data_t, imu_pitchspeed) }, \
         { "imu_yawspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ibee_recieve_data_t, imu_yawspeed) }, \
         { "imu_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ibee_recieve_data_t, imu_qw) }, \
         { "imu_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ibee_recieve_data_t, imu_qx) }, \
         { "imu_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ibee_recieve_data_t, imu_qy) }, \
         { "imu_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ibee_recieve_data_t, imu_qz) }, \
         { "work_ang", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ibee_recieve_data_t, work_ang) }, \
         { "ultasonic_radar_to_wall", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ibee_recieve_data_t, ultasonic_radar_to_wall) }, \
         { "deep_learning_use_lr", NULL, MAVLINK_TYPE_UINT8_T, 0, 72, offsetof(mavlink_ibee_recieve_data_t, deep_learning_use_lr) }, \
         { "t265_restart", NULL, MAVLINK_TYPE_UINT8_T, 0, 73, offsetof(mavlink_ibee_recieve_data_t, t265_restart) }, \
         { "udisk_eject", NULL, MAVLINK_TYPE_UINT8_T, 0, 74, offsetof(mavlink_ibee_recieve_data_t, udisk_eject) }, \
         { "switch_cam_index", NULL, MAVLINK_TYPE_UINT8_T, 0, 75, offsetof(mavlink_ibee_recieve_data_t, switch_cam_index) }, \
         { "glb_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 76, offsetof(mavlink_ibee_recieve_data_t, glb_status) }, \
         } \
}
#else
#define MAVLINK_MESSAGE_INFO_IBEE_RECIEVE_DATA { \
    "IBEE_RECIEVE_DATA", \
    23, \
    {  { "imu_roll", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_ibee_recieve_data_t, imu_roll) }, \
         { "imu_pitch", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_ibee_recieve_data_t, imu_pitch) }, \
         { "imu_yaw", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ibee_recieve_data_t, imu_yaw) }, \
         { "imu_accx", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ibee_recieve_data_t, imu_accx) }, \
         { "imu_accy", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ibee_recieve_data_t, imu_accy) }, \
         { "imu_accz", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ibee_recieve_data_t, imu_accz) }, \
         { "imu_magx", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ibee_recieve_data_t, imu_magx) }, \
         { "imu_magy", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ibee_recieve_data_t, imu_magy) }, \
         { "imu_magz", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ibee_recieve_data_t, imu_magz) }, \
         { "imu_rollspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ibee_recieve_data_t, imu_rollspeed) }, \
         { "imu_pitchspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ibee_recieve_data_t, imu_pitchspeed) }, \
         { "imu_yawspeed", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ibee_recieve_data_t, imu_yawspeed) }, \
         { "imu_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ibee_recieve_data_t, imu_qw) }, \
         { "imu_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ibee_recieve_data_t, imu_qx) }, \
         { "imu_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ibee_recieve_data_t, imu_qy) }, \
         { "imu_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ibee_recieve_data_t, imu_qz) }, \
         { "work_ang", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ibee_recieve_data_t, work_ang) }, \
         { "ultasonic_radar_to_wall", NULL, MAVLINK_TYPE_FLOAT, 0, 68, offsetof(mavlink_ibee_recieve_data_t, ultasonic_radar_to_wall) }, \
         { "deep_learning_use_lr", NULL, MAVLINK_TYPE_UINT8_T, 0, 72, offsetof(mavlink_ibee_recieve_data_t, deep_learning_use_lr) }, \
         { "t265_restart", NULL, MAVLINK_TYPE_UINT8_T, 0, 73, offsetof(mavlink_ibee_recieve_data_t, t265_restart) }, \
         { "udisk_eject", NULL, MAVLINK_TYPE_UINT8_T, 0, 74, offsetof(mavlink_ibee_recieve_data_t, udisk_eject) }, \
         { "switch_cam_index", NULL, MAVLINK_TYPE_UINT8_T, 0, 75, offsetof(mavlink_ibee_recieve_data_t, switch_cam_index) }, \
         { "glb_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 76, offsetof(mavlink_ibee_recieve_data_t, glb_status) }, \
         } \
}
#endif

/**
 * @brief Pack a ibee_recieve_data message
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 *
 * @param imu_roll  float
 * @param imu_pitch  float
 * @param imu_yaw  float
 * @param imu_accx  float
 * @param imu_accy  float
 * @param imu_accz  float
 * @param imu_magx  float
 * @param imu_magy  float
 * @param imu_magz  float
 * @param imu_rollspeed  float
 * @param imu_pitchspeed  float
 * @param imu_yawspeed  float
 * @param imu_qw  float
 * @param imu_qx  float
 * @param imu_qy  float
 * @param imu_qz  float
 * @param work_ang  float
 * @param ultasonic_radar_to_wall  float
 * @param deep_learning_use_lr  
 * @param t265_restart  uint8_t
 * @param udisk_eject  uint8_t
 * @param switch_cam_index  uint8_t
 * @param glb_status  uint8_t
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_ibee_recieve_data_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
                               float imu_roll, float imu_pitch, float imu_yaw, float imu_accx, float imu_accy, float imu_accz, float imu_magx, float imu_magy, float imu_magz, float imu_rollspeed, float imu_pitchspeed, float imu_yawspeed, float imu_qw, float imu_qx, float imu_qy, float imu_qz, float work_ang, float ultasonic_radar_to_wall, uint8_t deep_learning_use_lr, uint8_t t265_restart, uint8_t udisk_eject, uint8_t switch_cam_index, uint8_t glb_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN];
    _mav_put_float(buf, 0, imu_roll);
    _mav_put_float(buf, 4, imu_pitch);
    _mav_put_float(buf, 8, imu_yaw);
    _mav_put_float(buf, 12, imu_accx);
    _mav_put_float(buf, 16, imu_accy);
    _mav_put_float(buf, 20, imu_accz);
    _mav_put_float(buf, 24, imu_magx);
    _mav_put_float(buf, 28, imu_magy);
    _mav_put_float(buf, 32, imu_magz);
    _mav_put_float(buf, 36, imu_rollspeed);
    _mav_put_float(buf, 40, imu_pitchspeed);
    _mav_put_float(buf, 44, imu_yawspeed);
    _mav_put_float(buf, 48, imu_qw);
    _mav_put_float(buf, 52, imu_qx);
    _mav_put_float(buf, 56, imu_qy);
    _mav_put_float(buf, 60, imu_qz);
    _mav_put_float(buf, 64, work_ang);
    _mav_put_float(buf, 68, ultasonic_radar_to_wall);
    _mav_put_uint8_t(buf, 72, deep_learning_use_lr);
    _mav_put_uint8_t(buf, 73, t265_restart);
    _mav_put_uint8_t(buf, 74, udisk_eject);
    _mav_put_uint8_t(buf, 75, switch_cam_index);
    _mav_put_uint8_t(buf, 76, glb_status);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN);
#else
    mavlink_ibee_recieve_data_t packet;
    packet.imu_roll = imu_roll;
    packet.imu_pitch = imu_pitch;
    packet.imu_yaw = imu_yaw;
    packet.imu_accx = imu_accx;
    packet.imu_accy = imu_accy;
    packet.imu_accz = imu_accz;
    packet.imu_magx = imu_magx;
    packet.imu_magy = imu_magy;
    packet.imu_magz = imu_magz;
    packet.imu_rollspeed = imu_rollspeed;
    packet.imu_pitchspeed = imu_pitchspeed;
    packet.imu_yawspeed = imu_yawspeed;
    packet.imu_qw = imu_qw;
    packet.imu_qx = imu_qx;
    packet.imu_qy = imu_qy;
    packet.imu_qz = imu_qz;
    packet.work_ang = work_ang;
    packet.ultasonic_radar_to_wall = ultasonic_radar_to_wall;
    packet.deep_learning_use_lr = deep_learning_use_lr;
    packet.t265_restart = t265_restart;
    packet.udisk_eject = udisk_eject;
    packet.switch_cam_index = switch_cam_index;
    packet.glb_status = glb_status;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_IBEE_RECIEVE_DATA;
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
}

/**
 * @brief Pack a ibee_recieve_data message on a channel
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param imu_roll  float
 * @param imu_pitch  float
 * @param imu_yaw  float
 * @param imu_accx  float
 * @param imu_accy  float
 * @param imu_accz  float
 * @param imu_magx  float
 * @param imu_magy  float
 * @param imu_magz  float
 * @param imu_rollspeed  float
 * @param imu_pitchspeed  float
 * @param imu_yawspeed  float
 * @param imu_qw  float
 * @param imu_qx  float
 * @param imu_qy  float
 * @param imu_qz  float
 * @param work_ang  float
 * @param ultasonic_radar_to_wall  float
 * @param deep_learning_use_lr  
 * @param t265_restart  uint8_t
 * @param udisk_eject  uint8_t
 * @param switch_cam_index  uint8_t
 * @param glb_status  uint8_t
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_ibee_recieve_data_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                               mavlink_message_t* msg,
                                   float imu_roll,float imu_pitch,float imu_yaw,float imu_accx,float imu_accy,float imu_accz,float imu_magx,float imu_magy,float imu_magz,float imu_rollspeed,float imu_pitchspeed,float imu_yawspeed,float imu_qw,float imu_qx,float imu_qy,float imu_qz,float work_ang,float ultasonic_radar_to_wall,uint8_t deep_learning_use_lr,uint8_t t265_restart,uint8_t udisk_eject,uint8_t switch_cam_index,uint8_t glb_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN];
    _mav_put_float(buf, 0, imu_roll);
    _mav_put_float(buf, 4, imu_pitch);
    _mav_put_float(buf, 8, imu_yaw);
    _mav_put_float(buf, 12, imu_accx);
    _mav_put_float(buf, 16, imu_accy);
    _mav_put_float(buf, 20, imu_accz);
    _mav_put_float(buf, 24, imu_magx);
    _mav_put_float(buf, 28, imu_magy);
    _mav_put_float(buf, 32, imu_magz);
    _mav_put_float(buf, 36, imu_rollspeed);
    _mav_put_float(buf, 40, imu_pitchspeed);
    _mav_put_float(buf, 44, imu_yawspeed);
    _mav_put_float(buf, 48, imu_qw);
    _mav_put_float(buf, 52, imu_qx);
    _mav_put_float(buf, 56, imu_qy);
    _mav_put_float(buf, 60, imu_qz);
    _mav_put_float(buf, 64, work_ang);
    _mav_put_float(buf, 68, ultasonic_radar_to_wall);
    _mav_put_uint8_t(buf, 72, deep_learning_use_lr);
    _mav_put_uint8_t(buf, 73, t265_restart);
    _mav_put_uint8_t(buf, 74, udisk_eject);
    _mav_put_uint8_t(buf, 75, switch_cam_index);
    _mav_put_uint8_t(buf, 76, glb_status);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN);
#else
    mavlink_ibee_recieve_data_t packet;
    packet.imu_roll = imu_roll;
    packet.imu_pitch = imu_pitch;
    packet.imu_yaw = imu_yaw;
    packet.imu_accx = imu_accx;
    packet.imu_accy = imu_accy;
    packet.imu_accz = imu_accz;
    packet.imu_magx = imu_magx;
    packet.imu_magy = imu_magy;
    packet.imu_magz = imu_magz;
    packet.imu_rollspeed = imu_rollspeed;
    packet.imu_pitchspeed = imu_pitchspeed;
    packet.imu_yawspeed = imu_yawspeed;
    packet.imu_qw = imu_qw;
    packet.imu_qx = imu_qx;
    packet.imu_qy = imu_qy;
    packet.imu_qz = imu_qz;
    packet.work_ang = work_ang;
    packet.ultasonic_radar_to_wall = ultasonic_radar_to_wall;
    packet.deep_learning_use_lr = deep_learning_use_lr;
    packet.t265_restart = t265_restart;
    packet.udisk_eject = udisk_eject;
    packet.switch_cam_index = switch_cam_index;
    packet.glb_status = glb_status;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_IBEE_RECIEVE_DATA;
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
}

/**
 * @brief Encode a ibee_recieve_data struct
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 * @param ibee_recieve_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_ibee_recieve_data_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ibee_recieve_data_t* ibee_recieve_data)
{
    return mavlink_msg_ibee_recieve_data_pack(system_id, component_id, msg, ibee_recieve_data->imu_roll, ibee_recieve_data->imu_pitch, ibee_recieve_data->imu_yaw, ibee_recieve_data->imu_accx, ibee_recieve_data->imu_accy, ibee_recieve_data->imu_accz, ibee_recieve_data->imu_magx, ibee_recieve_data->imu_magy, ibee_recieve_data->imu_magz, ibee_recieve_data->imu_rollspeed, ibee_recieve_data->imu_pitchspeed, ibee_recieve_data->imu_yawspeed, ibee_recieve_data->imu_qw, ibee_recieve_data->imu_qx, ibee_recieve_data->imu_qy, ibee_recieve_data->imu_qz, ibee_recieve_data->work_ang, ibee_recieve_data->ultasonic_radar_to_wall, ibee_recieve_data->deep_learning_use_lr, ibee_recieve_data->t265_restart, ibee_recieve_data->udisk_eject, ibee_recieve_data->switch_cam_index, ibee_recieve_data->glb_status);
}

/**
 * @brief Encode a ibee_recieve_data struct on a channel
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param ibee_recieve_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_ibee_recieve_data_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ibee_recieve_data_t* ibee_recieve_data)
{
    return mavlink_msg_ibee_recieve_data_pack_chan(system_id, component_id, chan, msg, ibee_recieve_data->imu_roll, ibee_recieve_data->imu_pitch, ibee_recieve_data->imu_yaw, ibee_recieve_data->imu_accx, ibee_recieve_data->imu_accy, ibee_recieve_data->imu_accz, ibee_recieve_data->imu_magx, ibee_recieve_data->imu_magy, ibee_recieve_data->imu_magz, ibee_recieve_data->imu_rollspeed, ibee_recieve_data->imu_pitchspeed, ibee_recieve_data->imu_yawspeed, ibee_recieve_data->imu_qw, ibee_recieve_data->imu_qx, ibee_recieve_data->imu_qy, ibee_recieve_data->imu_qz, ibee_recieve_data->work_ang, ibee_recieve_data->ultasonic_radar_to_wall, ibee_recieve_data->deep_learning_use_lr, ibee_recieve_data->t265_restart, ibee_recieve_data->udisk_eject, ibee_recieve_data->switch_cam_index, ibee_recieve_data->glb_status);
}

/**
 * @brief Send a ibee_recieve_data message
 * @param chan MAVLink channel to send the message
 *
 * @param imu_roll  float
 * @param imu_pitch  float
 * @param imu_yaw  float
 * @param imu_accx  float
 * @param imu_accy  float
 * @param imu_accz  float
 * @param imu_magx  float
 * @param imu_magy  float
 * @param imu_magz  float
 * @param imu_rollspeed  float
 * @param imu_pitchspeed  float
 * @param imu_yawspeed  float
 * @param imu_qw  float
 * @param imu_qx  float
 * @param imu_qy  float
 * @param imu_qz  float
 * @param work_ang  float
 * @param ultasonic_radar_to_wall  float
 * @param deep_learning_use_lr  
 * @param t265_restart  uint8_t
 * @param udisk_eject  uint8_t
 * @param switch_cam_index  uint8_t
 * @param glb_status  uint8_t
 */
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

static inline void mavlink_msg_ibee_recieve_data_send(mavlink_channel_t chan, float imu_roll, float imu_pitch, float imu_yaw, float imu_accx, float imu_accy, float imu_accz, float imu_magx, float imu_magy, float imu_magz, float imu_rollspeed, float imu_pitchspeed, float imu_yawspeed, float imu_qw, float imu_qx, float imu_qy, float imu_qz, float work_ang, float ultasonic_radar_to_wall, uint8_t deep_learning_use_lr, uint8_t t265_restart, uint8_t udisk_eject, uint8_t switch_cam_index, uint8_t glb_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN];
    _mav_put_float(buf, 0, imu_roll);
    _mav_put_float(buf, 4, imu_pitch);
    _mav_put_float(buf, 8, imu_yaw);
    _mav_put_float(buf, 12, imu_accx);
    _mav_put_float(buf, 16, imu_accy);
    _mav_put_float(buf, 20, imu_accz);
    _mav_put_float(buf, 24, imu_magx);
    _mav_put_float(buf, 28, imu_magy);
    _mav_put_float(buf, 32, imu_magz);
    _mav_put_float(buf, 36, imu_rollspeed);
    _mav_put_float(buf, 40, imu_pitchspeed);
    _mav_put_float(buf, 44, imu_yawspeed);
    _mav_put_float(buf, 48, imu_qw);
    _mav_put_float(buf, 52, imu_qx);
    _mav_put_float(buf, 56, imu_qy);
    _mav_put_float(buf, 60, imu_qz);
    _mav_put_float(buf, 64, work_ang);
    _mav_put_float(buf, 68, ultasonic_radar_to_wall);
    _mav_put_uint8_t(buf, 72, deep_learning_use_lr);
    _mav_put_uint8_t(buf, 73, t265_restart);
    _mav_put_uint8_t(buf, 74, udisk_eject);
    _mav_put_uint8_t(buf, 75, switch_cam_index);
    _mav_put_uint8_t(buf, 76, glb_status);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA, buf, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
#else
    mavlink_ibee_recieve_data_t packet;
    packet.imu_roll = imu_roll;
    packet.imu_pitch = imu_pitch;
    packet.imu_yaw = imu_yaw;
    packet.imu_accx = imu_accx;
    packet.imu_accy = imu_accy;
    packet.imu_accz = imu_accz;
    packet.imu_magx = imu_magx;
    packet.imu_magy = imu_magy;
    packet.imu_magz = imu_magz;
    packet.imu_rollspeed = imu_rollspeed;
    packet.imu_pitchspeed = imu_pitchspeed;
    packet.imu_yawspeed = imu_yawspeed;
    packet.imu_qw = imu_qw;
    packet.imu_qx = imu_qx;
    packet.imu_qy = imu_qy;
    packet.imu_qz = imu_qz;
    packet.work_ang = work_ang;
    packet.ultasonic_radar_to_wall = ultasonic_radar_to_wall;
    packet.deep_learning_use_lr = deep_learning_use_lr;
    packet.t265_restart = t265_restart;
    packet.udisk_eject = udisk_eject;
    packet.switch_cam_index = switch_cam_index;
    packet.glb_status = glb_status;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA, (const char *)&packet, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
#endif
}

/**
 * @brief Send a ibee_recieve_data message
 * @param chan MAVLink channel to send the message
 * @param struct The MAVLink struct to serialize
 */
static inline void mavlink_msg_ibee_recieve_data_send_struct(mavlink_channel_t chan, const mavlink_ibee_recieve_data_t* ibee_recieve_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    mavlink_msg_ibee_recieve_data_send(chan, ibee_recieve_data->imu_roll, ibee_recieve_data->imu_pitch, ibee_recieve_data->imu_yaw, ibee_recieve_data->imu_accx, ibee_recieve_data->imu_accy, ibee_recieve_data->imu_accz, ibee_recieve_data->imu_magx, ibee_recieve_data->imu_magy, ibee_recieve_data->imu_magz, ibee_recieve_data->imu_rollspeed, ibee_recieve_data->imu_pitchspeed, ibee_recieve_data->imu_yawspeed, ibee_recieve_data->imu_qw, ibee_recieve_data->imu_qx, ibee_recieve_data->imu_qy, ibee_recieve_data->imu_qz, ibee_recieve_data->work_ang, ibee_recieve_data->ultasonic_radar_to_wall, ibee_recieve_data->deep_learning_use_lr, ibee_recieve_data->t265_restart, ibee_recieve_data->udisk_eject, ibee_recieve_data->switch_cam_index, ibee_recieve_data->glb_status);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA, (const char *)ibee_recieve_data, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
#endif
}

#if MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
  This variant of _send() can be used to save stack space by re-using
  memory from the receive buffer.  The caller provides a
  mavlink_message_t which is the size of a full mavlink message. This
  is usually the receive buffer for the channel, and allows a reply to an
  incoming message with minimum stack space usage.
 */
static inline void mavlink_msg_ibee_recieve_data_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  float imu_roll, float imu_pitch, float imu_yaw, float imu_accx, float imu_accy, float imu_accz, float imu_magx, float imu_magy, float imu_magz, float imu_rollspeed, float imu_pitchspeed, float imu_yawspeed, float imu_qw, float imu_qx, float imu_qy, float imu_qz, float work_ang, float ultasonic_radar_to_wall, uint8_t deep_learning_use_lr, uint8_t t265_restart, uint8_t udisk_eject, uint8_t switch_cam_index, uint8_t glb_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char *buf = (char *)msgbuf;
    _mav_put_float(buf, 0, imu_roll);
    _mav_put_float(buf, 4, imu_pitch);
    _mav_put_float(buf, 8, imu_yaw);
    _mav_put_float(buf, 12, imu_accx);
    _mav_put_float(buf, 16, imu_accy);
    _mav_put_float(buf, 20, imu_accz);
    _mav_put_float(buf, 24, imu_magx);
    _mav_put_float(buf, 28, imu_magy);
    _mav_put_float(buf, 32, imu_magz);
    _mav_put_float(buf, 36, imu_rollspeed);
    _mav_put_float(buf, 40, imu_pitchspeed);
    _mav_put_float(buf, 44, imu_yawspeed);
    _mav_put_float(buf, 48, imu_qw);
    _mav_put_float(buf, 52, imu_qx);
    _mav_put_float(buf, 56, imu_qy);
    _mav_put_float(buf, 60, imu_qz);
    _mav_put_float(buf, 64, work_ang);
    _mav_put_float(buf, 68, ultasonic_radar_to_wall);
    _mav_put_uint8_t(buf, 72, deep_learning_use_lr);
    _mav_put_uint8_t(buf, 73, t265_restart);
    _mav_put_uint8_t(buf, 74, udisk_eject);
    _mav_put_uint8_t(buf, 75, switch_cam_index);
    _mav_put_uint8_t(buf, 76, glb_status);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA, buf, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
#else
    mavlink_ibee_recieve_data_t *packet = (mavlink_ibee_recieve_data_t *)msgbuf;
    packet->imu_roll = imu_roll;
    packet->imu_pitch = imu_pitch;
    packet->imu_yaw = imu_yaw;
    packet->imu_accx = imu_accx;
    packet->imu_accy = imu_accy;
    packet->imu_accz = imu_accz;
    packet->imu_magx = imu_magx;
    packet->imu_magy = imu_magy;
    packet->imu_magz = imu_magz;
    packet->imu_rollspeed = imu_rollspeed;
    packet->imu_pitchspeed = imu_pitchspeed;
    packet->imu_yawspeed = imu_yawspeed;
    packet->imu_qw = imu_qw;
    packet->imu_qx = imu_qx;
    packet->imu_qy = imu_qy;
    packet->imu_qz = imu_qz;
    packet->work_ang = work_ang;
    packet->ultasonic_radar_to_wall = ultasonic_radar_to_wall;
    packet->deep_learning_use_lr = deep_learning_use_lr;
    packet->t265_restart = t265_restart;
    packet->udisk_eject = udisk_eject;
    packet->switch_cam_index = switch_cam_index;
    packet->glb_status = glb_status;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA, (const char *)packet, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_CRC);
#endif
}
#endif

#endif

// MESSAGE IBEE_RECIEVE_DATA UNPACKING


/**
 * @brief Get field imu_roll from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_roll(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  0);
}

/**
 * @brief Get field imu_pitch from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_pitch(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  4);
}

/**
 * @brief Get field imu_yaw from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_yaw(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  8);
}

/**
 * @brief Get field imu_accx from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_accx(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  12);
}

/**
 * @brief Get field imu_accy from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_accy(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  16);
}

/**
 * @brief Get field imu_accz from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_accz(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  20);
}

/**
 * @brief Get field imu_magx from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_magx(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  24);
}

/**
 * @brief Get field imu_magy from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_magy(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  28);
}

/**
 * @brief Get field imu_magz from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_magz(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  32);
}

/**
 * @brief Get field imu_rollspeed from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_rollspeed(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  36);
}

/**
 * @brief Get field imu_pitchspeed from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_pitchspeed(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  40);
}

/**
 * @brief Get field imu_yawspeed from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_yawspeed(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  44);
}

/**
 * @brief Get field imu_qw from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_qw(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  48);
}

/**
 * @brief Get field imu_qx from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_qx(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  52);
}

/**
 * @brief Get field imu_qy from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_qy(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  56);
}

/**
 * @brief Get field imu_qz from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_imu_qz(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  60);
}

/**
 * @brief Get field work_ang from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_work_ang(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  64);
}

/**
 * @brief Get field ultasonic_radar_to_wall from ibee_recieve_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_recieve_data_get_ultasonic_radar_to_wall(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  68);
}

/**
 * @brief Get field deep_learning_use_lr from ibee_recieve_data message
 *
 * @return  
 */
static inline uint8_t mavlink_msg_ibee_recieve_data_get_deep_learning_use_lr(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  72);
}

/**
 * @brief Get field t265_restart from ibee_recieve_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_recieve_data_get_t265_restart(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  73);
}

/**
 * @brief Get field udisk_eject from ibee_recieve_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_recieve_data_get_udisk_eject(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  74);
}

/**
 * @brief Get field switch_cam_index from ibee_recieve_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_recieve_data_get_switch_cam_index(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  75);
}

/**
 * @brief Get field glb_status from ibee_recieve_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_recieve_data_get_glb_status(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  76);
}

/**
 * @brief Decode a ibee_recieve_data message into a struct
 *
 * @param msg The message to decode
 * @param ibee_recieve_data C-struct to decode the message contents into
 */
static inline void mavlink_msg_ibee_recieve_data_decode(const mavlink_message_t* msg, mavlink_ibee_recieve_data_t* ibee_recieve_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    ibee_recieve_data->imu_roll = mavlink_msg_ibee_recieve_data_get_imu_roll(msg);
    ibee_recieve_data->imu_pitch = mavlink_msg_ibee_recieve_data_get_imu_pitch(msg);
    ibee_recieve_data->imu_yaw = mavlink_msg_ibee_recieve_data_get_imu_yaw(msg);
    ibee_recieve_data->imu_accx = mavlink_msg_ibee_recieve_data_get_imu_accx(msg);
    ibee_recieve_data->imu_accy = mavlink_msg_ibee_recieve_data_get_imu_accy(msg);
    ibee_recieve_data->imu_accz = mavlink_msg_ibee_recieve_data_get_imu_accz(msg);
    ibee_recieve_data->imu_magx = mavlink_msg_ibee_recieve_data_get_imu_magx(msg);
    ibee_recieve_data->imu_magy = mavlink_msg_ibee_recieve_data_get_imu_magy(msg);
    ibee_recieve_data->imu_magz = mavlink_msg_ibee_recieve_data_get_imu_magz(msg);
    ibee_recieve_data->imu_rollspeed = mavlink_msg_ibee_recieve_data_get_imu_rollspeed(msg);
    ibee_recieve_data->imu_pitchspeed = mavlink_msg_ibee_recieve_data_get_imu_pitchspeed(msg);
    ibee_recieve_data->imu_yawspeed = mavlink_msg_ibee_recieve_data_get_imu_yawspeed(msg);
    ibee_recieve_data->imu_qw = mavlink_msg_ibee_recieve_data_get_imu_qw(msg);
    ibee_recieve_data->imu_qx = mavlink_msg_ibee_recieve_data_get_imu_qx(msg);
    ibee_recieve_data->imu_qy = mavlink_msg_ibee_recieve_data_get_imu_qy(msg);
    ibee_recieve_data->imu_qz = mavlink_msg_ibee_recieve_data_get_imu_qz(msg);
    ibee_recieve_data->work_ang = mavlink_msg_ibee_recieve_data_get_work_ang(msg);
    ibee_recieve_data->ultasonic_radar_to_wall = mavlink_msg_ibee_recieve_data_get_ultasonic_radar_to_wall(msg);
    ibee_recieve_data->deep_learning_use_lr = mavlink_msg_ibee_recieve_data_get_deep_learning_use_lr(msg);
    ibee_recieve_data->t265_restart = mavlink_msg_ibee_recieve_data_get_t265_restart(msg);
    ibee_recieve_data->udisk_eject = mavlink_msg_ibee_recieve_data_get_udisk_eject(msg);
    ibee_recieve_data->switch_cam_index = mavlink_msg_ibee_recieve_data_get_switch_cam_index(msg);
    ibee_recieve_data->glb_status = mavlink_msg_ibee_recieve_data_get_glb_status(msg);
#else
        uint8_t len = msg->len < MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN? msg->len : MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN;
        memset(ibee_recieve_data, 0, MAVLINK_MSG_ID_IBEE_RECIEVE_DATA_LEN);
    memcpy(ibee_recieve_data, _MAV_PAYLOAD(msg), len);
#endif
}
